package com.itheima.controller;


import com.itheima.entity.Emp;
import com.itheima.entity.EmpQueryParam;
import com.itheima.entity.PageBean;
import com.itheima.entity.Result;
import com.itheima.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.util.List;

@Slf4j
@RestController
public class EmpController {
    @Autowired
    private EmpService empService;

//    /**
//     * 分页查询
//     * @param page
//     * @param pageSize
//     * @return
//     */
//    @GetMapping("/emps")
//    public Result page(
//            String name,Integer gender,
//            @DateTimeFormat(pattern = "yyyy-MM-dd" ) LocalDate begin,
//            @DateTimeFormat(pattern = "yyyy-MM-dd" ) LocalDate end,
//            @RequestParam(defaultValue = "1") Integer page,
//            @RequestParam (defaultValue = "10 ") Integer pageSize)
//    {
//        log.info ("分页查询:{} {} {} {} {} {}",name,gender,begin,end,page,pageSize);
//        PageBean pagebean=empService.page(name,gender,begin,end,page,pageSize);
//
//        return Result.success(pagebean);
//    }

    @GetMapping("/emps")
    public Result page(EmpQueryParam param)
    {
        log.info ("分页查询:{} {} {} {} {} {}",param.getName(),param.getGender(),param.getBegin(),param.getEnd(),param.getPage(),param.getPageSize());
        PageBean pagebean=empService.page(param);

        return Result.success(pagebean);
    }


    //新增员工
    @PostMapping("/emps")
    public Result save(@RequestBody Emp  emp) throws Exception {
        log.info ("新增员工:{}",emp);
        empService.save(emp);
        return Result.success();

    }

    @DeleteMapping("/emps")
    public Result delete(@RequestParam List<Integer> ids)
    {
        log.info("删除员工ids:{}",ids);
        empService.delete(ids);
        return Result.success();
    }

    @GetMapping("/emps/{id}")
    public Result getById(@PathVariable Integer id)
    {
        log.info("回显员工id:{}",id);

        Emp emp=empService.getById(id);
        log.info("回显员工emp:{}",emp);
        return Result.success(emp);
    }


    @PutMapping("/emps")
    public Result update(@RequestBody Emp emp)
    {
        log.info("修改员工:{}",emp);
        empService.update(emp);
        return Result.success();

    }
}
